// 持久化插件
export default function Persistent ({ options, store }) {
  // 如果有持久化配置参数
  const { persistent } = options
  if (persistent) {
    const { enabled, storage } = persistent
    const key = `${store.$id}Store`
    // 如果开启持久化
    if (enabled) {
      // 查看本地是否存在数据，如果有，则将数据更新到pinia
      const storageResult = storage.getItem(key)
      if (storageResult) {
        store.$patch(JSON.parse(storageResult))
      } else {
        storage.setItem(key, JSON.stringify(store.$state))
      }

      // 订阅state
      store.$subscribe((mutations, state) => {
        storage.setItem(`${mutations.storeId}Store`, JSON.stringify(state))
      })
    }
  }
}
